package czolgisci.map;

import java.util.HashMap;
import czolgisci.tiles.TileType;

/**
 * Klasa interpretujaca kod kafelka mapy.
 * 
 * @author pillow
 * @pattern Interpreter - interpretuje konkretną implementację mapy gry
 * @version 1.0
 */
public class MapCodeInterpreter
{
	private static HashMap<Character, TileType> tilesMap;
	static
	{
		tilesMap = new HashMap<Character, TileType>();
		tilesMap.put('B', TileType.BULLET);
		tilesMap.put('T', TileType.TANK);
		tilesMap.put('W', TileType.WALL);
	}

	/**
	 * @param c
	 *            kod kafelka w formacie ASCII
	 * @return uniwersalny typ "rozumiany" i "znany" przez fabrykę abstrakcyjną
	 */
	public static TileType decodeTileType(char c) throws IllegalArgumentException
	{
		TileType tile = tilesMap.get(c);
		if (tile == null)
		{
			throw new IllegalArgumentException();
		}

		return tile;
	}
}
